package com.otherTest.date;

import org.junit.Test;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;

/**
 * @author Conceit
 * @version 1.0, 2017/1/3
 */
public class TestDateConver {
    @Test
    public void convertHours() throws ParseException {

        Date localTime = new Date();
        Date startTime = new Date();
        Date nowTime = new Date();
        Date endTime = new Date();


        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");

        String format = sdf.format(nowTime);//格式化时间为String
        System.out.println(format);//2017-01-03 0014-57-57

        Date parse = sdf.parse(sdf.format(nowTime));//将String时间解析为数字时间
        System.out.println(parse);//Tue Jan 03 15:01:52 CST 2017

        //修改时间
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(localTime);
        calendar.add(Calendar.HOUR_OF_DAY, 8);
        System.out.println(sdf.format(calendar.getTime()));

        //获取当前时区
        TimeZone timeZone = calendar.getTimeZone();
        System.out.println(timeZone);//sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null]
        String displayName = timeZone.getDisplayName();
        System.out.println(displayName);//中国标准时间
        String id = timeZone.getID();
        System.out.println(id);//Asia/Shanghai
        int dstSavings = timeZone.getDSTSavings();//方法调用返回毫秒为单位的时间提前相对于标准时间的数
        System.out.println(dstSavings);//0

        /*
        获取时区偏移量，为当前日期，修改夏令时情况下。这是偏移量添加到UTC以获取本地时间。
        era--这是给定日期的年代。
        year--这是给定日期的年份。
        month--这是给定日期的月份。
        day--这是一天中个月的特定日期。
        dayOfWeek--这是给定日期的周的一天。
        milliseconds--这是在一天的毫秒标准的本地时间。
        */
        int offset = timeZone.getOffset(1, 2011, 2, 2, 2, 300);//28800000
        System.out.println(offset);

        //获取此时区的 GMT 偏移量
        int rawOffset = timeZone.getRawOffset();
        System.out.println(rawOffset);//28800000


    }
}
